/*
 * InteligenciaPerfil3.cpp
 * Created on: 01/12/2011
 * Author: Catharine
 */

#include "model/InteligenciaPerfil3.h"
#include "model/AnalisadorJogadas.h"

using namespace Osp::Base::Utility;

InteligenciaPerfil3::InteligenciaPerfil3(Jogador* jogador) {
	this->jogador = jogador;
}

InteligenciaPerfil3::~InteligenciaPerfil3() {
}

Acao * InteligenciaPerfil3::GetAcao()
{
	Controlador* controlador = Controlador::GetInstance();

	AnalisadorJogadas* analisador = new AnalisadorJogadas();
	analisador->Construct(jogador->GetMao(), controlador->GetMesa());

	Acao* acao = null;

	int aposta = Math::Rand()%30 + 20;

	//tem blefe
	if (analisador->TemRoyalStraightFlush()) {
		AppLog("jogador pc tem royal straight flush");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemStraightFlush()) {
		AppLog("jogador pc tem straight flush");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemQuadra()) {
		AppLog("jogador pc tem quadra");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemFullHouse()) {
		AppLog("jogador pc tem full house");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemFlush()) {
		AppLog("jogador pc tem flush");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemStraight()) {
		AppLog("jogador pc tem straight");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemTrinca()) {
		AppLog("jogador pc tem trinca");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemDoisPares()) {
		AppLog("jogador pc tem 2 pares");
		acao = new Acao(AUMENTAR, aposta);
	} else if (analisador->TemPar()) {
		AppLog("jogador pc tem par");
		acao = new Acao(AUMENTAR, aposta);
	} else {
		AppLog("jogador pc tem High Card");
		if(controlador->GetMaiorApostaRodada() > 0){
			acao = new Acao(DESISTIR, 0);
		}else{
			acao = new Acao(PASSAR, 0);
		}

	}
	delete analisador;
	return acao;
}
